-
It's a dilemma between synchronizing actions or synchronizing the consequences of actions.
Server-Authority
-
"The only 'authority' the client has is regarding its inputs, which are sent to the server, which 'notifies' the other clients."
-
"You want the client to have as little 'authority' as possible, so the server is the source of truth."
-
Inputs are done on the Client and passed to the Server, and ONLY the Server can move Entities and world objects.
-
The Client player is just an amoeba copying the Server's movements and properties, with no agency.
-
The Server has access to all "processes," while peers only have access to Inputs.
-
Synchronizing everything can be cumbersome and may cause unresponsiveness during lag.
-
Lag compensation is often necessary.
-
Safer against cheating.
Client-Authority
-
The Client really PLAYS on the Client, while using RPCs to make other Clients' entities execute the same actions.